vlwkaos' digital garden

Cross Origin Resource Sharing(CORS)

서버 외부의 origin(domain, scheme, port)에 대한 정보를 나타내기 위한 HTTP 헤더를 이용하는 방법.

또한 [[Preflight Request]]를 활용하여 실제 요청을 보낼지 말지 결정하는 메커니즘도 사용된다.

일반적으로 보안상 브라우저는 cross-origin HTTP요청을 제한한다.

CORS를 사용하는 요청

  • XMLHttpRequest / Fetch API
  • Web Fonts
  • WebGL textures
  • canvas에 drawImage()를 이용해 올라간 Image / video .
  • image에서 가져온 CSS Shape

작동방식

  • 서버에서 HTTP 헤더에 어떤 origin을 허용할지 명시.
Access-Control-Allow-Origin: *
  • side-effect가 있는 요청의 경우 브라우저에서 preflight 요청을 보내도록 한다.
    • 특정 MIME types의 GET/POST가 아닌 다른 모든 요청을 의미함

자세한 에러내용은 보안상 자바스크립트에서 알 수 없음.

👀

Cross Origin Resource Sharing(CORS)